package com.numberone.iotplatform.service;

import com.numberone.iotplatform.dto.BatchImportRequestDTO;
import com.numberone.iotplatform.dto.DeviceDTO;
import com.numberone.iotplatform.dto.DeviceDetailDTO;
import com.numberone.iotplatform.dto.DeviceFormDTO;
import com.numberone.iotplatform.entity.AiModel;
import com.numberone.iotplatform.entity.Channel;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.Set;

public interface DeviceService {
    public Page<DeviceDTO> findAll(String keyword, String status, Long locationId, Pageable pageable);

    public DeviceDetailDTO getDeviceDetailById(Long id);

    public Set<Channel> findChannelsByDeviceId(Long deviceId);

    public Set<AiModel> findAiModelsByDeviceId(Long deviceId);

    public DeviceDTO createDevice(DeviceFormDTO dto);

    public DeviceDTO updateDevice(Long id, DeviceFormDTO dto);

    public void batchImportDevices(BatchImportRequestDTO request);

    void rebootDeviceById(Long id);

    void deleteDeviceById(Long id);
}